leetcodeJS

Personal solution for leetcode problem using Javascript

View on GitHub

Problem

Given an array A of integers, a ramp is a tuple (i, j) for which i < j and A[i] <= A[j].  The width of such a ramp is j - i.

Find the maximum width of a ramp in A.  If one doesn’t exist, return 0.

Example 1:

Input: [6,0,8,2,1,5]

Output: 4

Explanation:

The maximum width ramp is achieved at (i, j) = (1, 5): A[1] = 0 and A[5] = 5.

Example 2:

Input: [9,8,1,0,1,9,4,0,4,1]

Output: 7

Explanation:

The maximum width ramp is achieved at (i, j) = (2, 9): A[2] = 1 and A[9] = 1.

Note:

2 <= A.length <= 50000

0 <= A[i] <= 50000

Pre analysis

Will run simulation technique

Another solution

var maxWidthRamp = function(A) {
    let n=A.length;
    let B=Array.from({length:n}, (x,i)=>[i,A[i]]);
    B.sort((a,b)=>{
        if(a[1]!==b[1]) return a[1]-b[1];
        else return a[0]-b[0];
    });
    let min=Infinity, max=-0;
    for(let b of B){
        let [i,n]=b;
        max=Math.max(max, i-min);
        min=Math.min(min, i);
    }
    return max;
};